/* ========================================================================= */
/* ------------------------------------------------------------------------- */
/*!
  \file			CC_PlgInTpl.h
  \date			June 2011
  \author		TNick

  \brief		Contains the definition for CC_PlgInTpl class


 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ @n
 Please read ReadMe.txt and Licence.txt in root folder @n
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ @n

*/
/* ------------------------------------------------------------------------- */
/* ========================================================================= */
#ifndef __CC_PLGINTPL_INC__
#define __CC_PLGINTPL_INC__
//
//
//
//
/*  INCLUDES    ------------------------------------------------------------ */

class		CC_Cmd;

#include	<QObject>

/*  INCLUDES    ============================================================ */
//
//
//
//
/*  CLASS    --------------------------------------------------------------- */

/// class
/**
*
*/
class CC_PlgInTpl 		{


	//
	//
	//
	//
	/*  DEFINITIONS    ----------------------------------------------------- */

	/*  DEFINITIONS    ===================================================== */
	//
	//
	//
	//
	/*  DATA    ------------------------------------------------------------ */

private:

	QString		cmd_text;

	/*  DATA    ============================================================ */
	//
	//
	//
	//
	/*  FUNCTIONS    ------------------------------------------------------- */

public:

	/// destructor;
	virtual				~CC_PlgInTpl		(void) {}



	/// initialization performed after load; called by loader
	/**
	*	@return	false to cancel the loading
	*/
	virtual bool				init				(void) = 0;

	/// plug-in is informed about the fact that it's being unloaded
	virtual void				end					(void) = 0;

	/// function that tells how manny commands this module stores
	/**
 *	if the module does not export any commands to the user, this is ok to
 *	be 0;
 *
 *	@return		number of items or 0 if none
 */
	virtual unsigned			countCmd			(void) = 0;

	/// function that exports internal array of commands
	/**
 *	if the module does not export any commands to the user, this is ok to
 *	be NULL;
 *
 *	@return		a valid pointer or NULL
 */
	virtual CC_Cmd*				arrayCmd			(void) = 0;




	/*  FUNCTIONS    ======================================================= */
	//
	//
	//
	//

};	/*	class CC_PlgInTpl	*/

QT_BEGIN_NAMESPACE
Q_DECLARE_INTERFACE(CC_PlgInTpl,
					"com.tnick.Qt_T4.CC_PlgInTpl/1.0")
QT_END_NAMESPACE







/*  CLASS    =============================================================== */
//
//
//
//
#endif // __CC_PLGINTPL_INC__
/* ------------------------------------------------------------------------- */
/* ========================================================================= */

